package com.wjsima.renyisima.demo;

import java.util.Arrays;
import java.util.function.Predicate;
import java.util.stream.Stream;

/*
三. Pedicate接口使用

1.请在测试类main方法中完成以下需求

已知有Integer[] arr = {-12345, 9999, 520, 0,-38,-7758520,941213}
a)使用lambda表达式创建Predicate对象p1,p1能判断整数是否是自然数(大于等于0)
b)使用lambda表达式创建Predicate对象p2,p2能判断整数的绝对值是否大于100
c)使用lambda表达式创建Predicate对象p3,p3能判断整数是否是偶数
i.打印自然数的个数
ii.打印负整数的个数
iii.打印绝对值大于100的偶数的个数
iv.打印是负整数或偶数的数的个数
 */
public class HomeWork3 {
    public static void main(String[] args) {
        Integer[] arr = {-12345, 9999, 520, 0, -38, -7758520, 941213};
        Predicate<Integer> p1 = i -> i >= 0;
        Predicate<Integer> p2 = i -> Math.abs(i) > 100;
        Predicate<Integer> p3 = i -> i % 2 == 0;
        int zcount = 0;
        for (Integer num : arr) {
            if (p1.test(num)) {
                zcount++;
            }
        }
        System.out.println(zcount);
        int fcount = 0;
        for (Integer num : arr) {
            if (!p1.test(num)) {
                fcount++;
            }
        }
        System.out.println(fcount);
        int abscount = 0;
        for (Integer num : arr) {
            if (p2.test(num)) {
                abscount++;
            }
        }
        System.out.println(abscount);
        int couut = 0;
        for (Integer num : arr) {
            if (!p1.test(num) && p3.test(num)){
                couut++;
            }
        }
        System.out.println(couut);
    }
}
